﻿

using VisitorPattern.Visitor;

namespace VisitorPattern;

internal abstract class Student
{
    public int Id { get; set; }
    public string? Name { get; set; }
    public string? Description { get; set; }

    public void Study()
    {
        Console.WriteLine($"{Name} 跟着 WJA 老师学习 .net 高级开发");
    }
    /// <summary>
    /// 子类都有但是实现各不相同的就使用抽象类实现
    /// </summary>
    public abstract void GetVideo();

    public abstract void GetVideoVisitor(IVisitor visitorCurrent);

    //public void GetVideo()
    //{
    //    if(this is StudentFree)
    //    {
    //        Console.WriteLine($"{this.GetType().Name} 获取视频和代码");
    //    }
    //    else
    //    {
    //        Console.WriteLine($"{this.GetType().Name} 获取视频和代码");
    //    }
    //}
}
